/**
 * 
 * 可通过 $page 获取或修改当前页面的 变量 状态 handler lifecycle 等信息
 * 可通过 app 获取或修改全局应用的 变量 状态 等信息
 * 具体可以console.info 在编辑器Console面板查看更多信息
 * 注意：该方法仅在所属的页面有效
 * 如果需要 async-await，请修改成 export default async function() {}
 * 帮助文档 https://cloud.tencent.com/document/product/1301/57912
 **/

/**
 * @param {Object} event - 事件对象
 * @param {string} event.type - 事件名
 * @param {any} event.detail - 事件携带自定义数据
 *
 * @param {Object} data
 * @param {any} data.target - 获取事件传参的数据
 **/
export default async function () {
  $w.page.dataset.state.loading = true
  const auth = (await $w.cloud.getCloudInstance()).authInstance;

  try {
    const data = await auth.getUserInfo({ version: 'v2', query: { with_user_provider: true, with_datasource: true } });
    const user = {
      userId: data?.user_id || '',
      username: data?.username || '',
      hasPassword: data?.has_password || '',
      phone: (data?.phone || '').replace(/^\+86 /, ''),
      providers: data?.providers || [],
    };
    $w.page.dataset.state.loginInfo = user
    $w.page.dataset.state.loading = false;
    return data;
  } catch (error) {
    $w.page.dataset.state.userInfo = {}
    $w.page.dataset.state.loading = false;
    console.log('=======> getUserBaseInfo err', error);
    return error;
  }
}